package imclient;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.jiunuan.live.core.server.common.ImMsg;
import com.jiunuan.live.im.constants.ImMsgCodeEnum;
import com.jiunuan.live.im.dto.ImMsgBody;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Author: JiuNuan
 * @CreateTime: 2024-08-11 20:58
 * @Description: 客户端handler
 */

public class ClientHandler extends ChannelInboundHandlerAdapter{
    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
        ImMsg imMsg = (ImMsg) msg;

        Date currentDate = new Date();
        // 创建SimpleDateFormat对象，并设置格式
        // mm - 月份，两位数字表示（00-12）
        // dd - 日期，两位数字表示（00-31）
        // hh - 小时（12小时制），两位数字表示（01-12）
        // mm - 分钟，两位数字表示（00-59）
        SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd HH:mm");
        // 将Date对象格式化为字符串
        String formattedDate = dateFormat.format(currentDate);

        if(imMsg.getCode() == ImMsgCodeEnum.IM_BIZ_MSG.getCode()){
            // 业务消息
            ImMsgBody respMsgBody = JSON.parseObject(new String(imMsg.getBody()), ImMsgBody.class);
            ImMsgBody ackMsgBody = new ImMsgBody();
            ackMsgBody.setMsgId(respMsgBody.getMsgId());
            ackMsgBody.setAppId(respMsgBody.getAppId());
            ackMsgBody.setUserId(respMsgBody.getUserId());
            ImMsg ackMsg = ImMsg.build(ImMsgCodeEnum.IM_ACK_MSG.getCode(), JSON.toJSONString(ackMsgBody));
            ctx.writeAndFlush(ackMsg);
//            if(respMsgBody.getBizCode() == 5005){
//                // 从ImMsgBody中获取JSON字符串
//                String jsonData = respMsgBody.getData();
//
//                // 使用JSONObject来解析JSON字符串
//                JSONObject jsonObject = JSON.parseObject(jsonData);
//
//                // 从JSON对象中取出senderId和content
//                String senderId = jsonObject.getString("senderId");
//                String content = jsonObject.getString("content");
//                System.out.println("\n["+senderId+"--"+ formattedDate +"]:" + content +"\n请输入发送的内容:\n");
//            }
        }else if(imMsg.getCode() == ImMsgCodeEnum.IM_HEARTBEAT_MSG.getCode()){
            System.out.print("💕");
        }
        System.out.println(new String(imMsg.getBody()));
    }
}
